package com.guoranhao.business.api.service;


import com.guoranhao.business.model.*;
import com.guoranhao.business.param.AdminGetAppFunctionIconListParam;
import com.guoranhao.business.param.AppFunctionIconParam;
import com.guoranhao.business.param.EsSkuParam;
import com.guoranhao.business.vo.AppFunctionIconAdminVo;
import com.guoranhao.business.vo.AppFunctionIconVo;
import com.guoranhao.business.vo.EsSpuVo;
import com.guoranhao.tool.model.BasePage;
import com.guoranhao.tool.vo.AdminResultVo;
import com.guoranhao.tool.vo.MessageVo;

import java.util.List;


/**
 * Description:  基础api<br/>
 * Version V1.0  2019-8-30 16:58  by 秦涛   (qintao@cloud-young.com) 创建
 */
public interface BaseInfoApi {

    /**
     * Description: 获取功能按钮图标集合
     * Version1.0 2019-01-19 20:16 by 郝浩天（haoht@cloud-young.com/）创建
     *
     * @param appFunctionIconCategoryId 功能图标分类
     * @return
     */
    public MessageVo<List<AppFunctionIcon>> getAppFunctionIconList(Long appFunctionIconCategoryId);

    /**
     * Description: llb功能按钮查询
     * Version1.0 2019-01-20 12:07 by 郝浩天（haoht@cloud-young.com/）创建
     *
     * @param param 参数实体
     * @return app function icon list for admin
     */
    public MessageVo<AdminResultVo<AppFunctionIconAdminVo>> getAppFunctionIconListForAdmin(AdminGetAppFunctionIconListParam param);

    /**
     * Description: 修改llb功能按钮图片
     * Version1.0 2019-01-20 12:07 by 郝浩天（haoht@cloud-young.com/）创建
     *
     * @param userId            用户id
     * @param appFunctionIconId 图标id
     * @param functionIconUrl   图标
     * @return message vo
     */
    public MessageVo<Boolean> modifyAppFunctionIconListForAdmin(Long userId, Long appFunctionIconId, String functionIconUrl);

    /**
     * Description: 修改功能图标信息
     * Version1.0 2019/6/3 11:59 by 赵博（zhaobo@cloud-young.com）创建
     *
     * @param param 参数
     * @return MessageVo<Boolean>
     */
    MessageVo<Boolean> modifyAppFunctionIcon(AppFunctionIconParam param);

    /**
     * Description: 新增功能图标信息
     * Version1.0 2019/6/3 11:59 by 赵博（zhaobo@cloud-young.com）创建
     *
     * @param param 参数
     * @return MessageVo<Boolean>
     */
    MessageVo<Boolean> addNewFunctionIcon(AppFunctionIconParam param);

    /**
     * Description:  查询轮播图列表<br/>
     * Version V1.0  2019-8-27 15:26  by 秦涛   (qintao@cloud-young.com) 创建
     * @param page 分页
     * @return 列表数据
     */
    MessageVo<List<SlideConfig>> getSlideConfig(BasePage page);

    /**
     * Description:  查询文章列表<br/>
     * Version V1.0  2019-8-27 17:35  by 秦涛   (qintao@cloud-young.com) 创建
     * @param page 分页
     * @return 列表
     */
    MessageVo<List<Post>> getPostList(BasePage page);


    /**
     * Description:  查询商品分类列表<br/>
     * Version V1.0  2019-8-28 15:40  by 秦涛   (qintao@cloud-young.com) 创建
     * @return 列表
     */
    MessageVo<List<EsCategory>> getEsCategoryList();

    /**
     * Description:  查询购物车数量<br/>
     * Version V1.0  2019-8-28 16:26  by 秦涛   (qintao@cloud-young.com) 创建
     * @param openId 用户id
     * @return 数量
     */
    MessageVo<Integer> getShoppingCartCount(String openId);

    /**
     * Description:  查询购物车列表<br/>
     * Version V1.0  2019-8-28 16:27  by 秦涛   (qintao@cloud-young.com) 创建
     * @param openId 用户id
     * @return 列表
     */
    MessageVo<List<EsSpuVo>> getShoppingCartList(String openId);

    /**
     * Description:  添加商品到购物车<br/>
     * Version V1.0  2019-8-29 14:47  by 秦涛   (qintao@cloud-young.com) 创建
     * @param shoppingCart 购物车参数
     * @return true成功
     */
    MessageVo<Boolean> addGoods(ShoppingCart shoppingCart);

    /**
     * Description:  根据分类查询商品<br/>
     * Version V1.0  2019-8-30 16:47  by 秦涛   (qintao@cloud-young.com) 创建
     * @param param 参数
     * @return 列表
     */
    MessageVo<List<EsSpuVo>> getEsSkuList(EsSkuParam param);

    /**
     * Description:  查询商品详情<br/>
     * Version V1.0  2019-8-30 17:02  by 秦涛   (qintao@cloud-young.com) 创建
     * @param esSkuId id
     * @return 详情
     */
    MessageVo<EsSpuVo> getEsSkuvoByEsSkuId(Long esSkuId);
}
